-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Combine mesh sockets #525
base: main
Are you sure you want to change the base?
Combine mesh sockets #525
Conversation
fixing wrong asset path for future get_asset
made sockets work with combine mesh
@bengHinterland thanks for the fix. Ill do some testing, and well try and get these changes merged in soon! |
Any news on this ? We're still using it locally, apparently there's conflict now with the latest changes |
Resolving the merge conflicts is pretty straight forward. I held off in merging since this is referencing an extension in the core module. I am going to see what can be done to isolate this to the extension. Also we need to write tests for this too. I have another large PR incoming that I'll see if I can re-factor this into. |
Linking this for reference of the original bug report |
} | ||
combined = False | ||
mesh_name = mesh_object_param.name | ||
if hasattr(bpy.context.scene.send2ue.extensions,"combine_meshes"): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry just got some time to look at this. So if I am understanding correctly, we want to recurse all children of the asset look for sockets, if it is to be combined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Allo ! Sorry for the delay
Yes I remember I was working on something like that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just looking into this functionality again too, and even using default pipeline settings I'm getting the error:
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\rpc\factory.py", line 221, in run_function_remotely
return remote_function(*args)
File "C:\Program Files\Blender Foundation\Blender 3.5\3.5\python\lib\xmlrpc\client.py", line 1122, in __call__
return self.__send(self.__name, args)
File "C:\Program Files\Blender Foundation\Blender 3.5\3.5\python\lib\xmlrpc\client.py", line 1464, in __request
response = self.__transport.request(
File "C:\Program Files\Blender Foundation\Blender 3.5\3.5\python\lib\xmlrpc\client.py", line 1166, in request
return self.single_request(host, handler, request_body, verbose)
File "C:\Program Files\Blender Foundation\Blender 3.5\3.5\python\lib\xmlrpc\client.py", line 1182, in single_request
return self.parse_response(resp)
File "C:\Program Files\Blender Foundation\Blender 3.5\3.5\python\lib\xmlrpc\client.py", line 1354, in parse_response
return u.close()
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\rpc\client.py", line 55, in close
raise exception(exception_message)
RuntimeError: The D:/XXXXXXXXXX does not exist in the project!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\operators.py", line 71, in modal
raise error
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\operators.py", line 61, in modal
function(*args, **kwargs)
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\core\ingest.py", line 50, in create_static_mesh_sockets
UnrealRemoteCalls.set_static_mesh_sockets(
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\rpc\factory.py", line 248, in wrapper
return rpc_factory.run_function_remotely(function, args)
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\rpc\factory.py", line 226, in run_function_remotely
raise exception.__class__(stack_trace).with_traceback(call_traceback)
File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\core\ingest.py", line 50, in create_static_mesh_sockets
UnrealRemoteCalls.set_static_mesh_sockets(
RuntimeError: The D:/XXXXXXXXXX does not exist in the project! File "C:\Users\ollys\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\unreal.py", line 1402```
which it appears may have been in issue in the past as well, but was resolved.
would love to have this socket functionality in some form, with combine meshes would be even better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was logged in my personal account I didn't see this ! I'm going to try and fix that are update this PR in the coming weeks hopefully
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Weeks turned into months but I have abot of time now
Requires #524 to work
Fix the fact that sockets would not work with combine mesh when the parent empty has more than one children
Also made the get socket function work recursively if meshes are combined.
I am not sure the way I know if combine mesh is used is very elegant, since probably the main code should not be aware if an extension exists or not, but I didn't see any other way to make it work without a lot of refactoring. Maybe the get socket function could be overloadable in an extension ?